<?xml version="1.0" encoding="UTF-8"?>
<html>
    <head>
        <link type="text/css" rel="stylesheet" href="./css/template.css" />
        <link type="text/css" rel="stylesheet" href="./css/SyntaxHighlighter.css" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Eclipse Europa : le successeur de Callisto</title>
        <script language="javascript" src="./js/shInit.js" />
        <script language="javascript" src="./js/shCore.js" />
        <script language="javascript" src="./js/shBrushCpp.js" />
        <script language="javascript" src="./js/shBrushCSharp.js" />
        <script language="javascript" src="./js/shBrushCss.js" />
        <script language="javascript" src="./js/shBrushDelphi.js" />
        <script language="javascript" src="./js/shBrushJava.js" />
        <script language="javascript" src="./js/shBrushJScript.js" />
        <script language="javascript" src="./js/shBrushPhp.js" />
        <script language="javascript" src="./js/shBrushPython.js" />
        <script language="javascript" src="./js/shBrushRuby.js" />
        <script language="javascript" src="./js/shBrushSql.js" />
        <script language="javascript" src="./js/shBrushVb.js" />
        <script language="javascript" src="./js/shBrushXml.js" />
        <keywords>Eclipse Europa,WTP,JPA</keywords>
        <author>Maxime Vialette</author>
    </head>
    <body>
        <div class="chapter">
            <h2>Eclipse Europa : le successeur de Callisto</h2>
            <p>Après Eclipse Callisto (Eclipse 3.2), la fondation Eclipse sort
				la nouvelle mouture d'Eclipse appelée Europa (Eclipse 3.3) faisant ainsi
				passer le nombre de projets embarqués de 10 à 21. Que ceux qui sont
				réticents aux « distributions » d'Eclipse se rassurent car comme
				l'indique la fondation Eclipse :</p>
            <div class="subChapter">
                «While Europa is about the simultaneous release of twenty one projects, it is not a unification of the projects - each project remains a separate open source project operating with its own project leadership, its own committers, and its own project plan.»
                <div class="quote_author">Fondation Eclipse</div>
            </div>
            <p>
                Dans la
                <a href="http://www.eclipse.org/europa/" target="_blank">section Téléchargements du site d'Eclipse</a>
                , depuis le 29 juin dernier nous avons donc le choix entre ces différentes versions d'Eclipse :
            </p>
            <ul>
                <li>Developers : à destination des développeurs Java SE</li>
                <li>Java EE Developers : à destination des développeurs Java EE</li>
                <li>C/C++ Developers : à destination des développeurs C et C++</li>
                <li>RCP / Plugin Developers : à destination des développeurs
					utilisant Eclipse comme plate-forme de base pour leurs applications
					RCP.</li>
                <li>Customize Europa : à destination des développeurs souhaitant
					créer leur propre version d'Eclipse en ajoutant les plugins via
					l'Update Manager</li>
            </ul>
            <p>Eclipse Europa offre un support complet de Java 6 et embarque
				différents plugins et de nouvelles fonctionnalités. Dans cette article
				nous allons utiliser la version d'Eclipse : « Java EE Developers » et
				développer un projet basé sur les EJB 3 afin d'identifier les réels gain
				de cette nouvelle version. Voici le nouveau Welcome screen :</p>
            <img src="" alt="Welcome screen" height="100%" width="100%" />
            <p>Dans cet article nous allons développer un projet avec les
				technologies JavaEE phare : EJB3 &amp; JSF.</p>
        </div>
        <div class="chapter">
            <h2>Exemple de projet : EJB3</h2>
            <p>Très souvent dans les tutoriaux nous pouvons trouver une
				modélisation UML des classes métiers alors que dans la réalité il est
				relativement rare de débuter un projet sans aucune base préalable.</p>
            <p>Prenons donc comme fait que nous devons construire une
				application à partir du modèle physique de données suivant :</p>
            <img src="./images/Europa_model_uml.png" alt="Model_uml" height="100%" width="100%" />
            <p>Pour information ce diagramme à été réalisé grâce au plugin Clay
				Database Modeling qui permet notamment de faire de la rétro-conception
				afin de rapidement visualiser une structure de base de données.</p>
            <p>En revanche, le plugin Data Tools Platform (DTP) 1.5 regroupe
				plusieurs outils permettant un accès facilité aux données. La
				perspective « Database Developement » et la vue « Data Source Explorer »
				permettent d'accéder à une base de données et d'y exécuter du SQL. Dans
				le quotidien d’un développeur, avoir un client SQL intégré à Eclipse (ou
				tout autre IDE) est un gain de temps considérable. La première des
				opérations à effectuer va donc être d'explorer le modèle et visualiser
				les informations :</p>
            <img src="" alt="Data Tools Platform" height="100%" width="100%" />
            <p>Dans cet exemple où nous partons d'une base de données existante,
				nous allons utiliser l'approche "bottom-up". Pour ce faire nous allons
				commencer à utiliser les nouveautés apportées par le plugin Web Tools
				Platform (WTP) 2.0. WTP est LE plugin incontournable pour développer
				des applications Web &amp; Java EE sous Eclipse. Les assistants et éditeurs
				graphiques supportant de multiples normes permettent un gain de temps
				considérable. De plus, le support des EJB3 (grâce au sous-projet Dali),
				Java Persistance API (JPA), JSF &amp; Ajax permet à Eclipse de consolider sa
				place d'environnement privilégié des développeurs Java EE.</p>
            <p>Construisons donc un projet de type « JPA Project » que vous
				trouverez dans la catégorie « JPA » qui aura pour but d'héberger, dans
				un premier temps les Entity Beans. Nous allons donc générer ces Entity
				à partir du modèle de données via le menu contextuel « JPA Tools »
				suivant :</p>
            <img src="" alt="JPA Tools" height="100%" width="100%" />
            <p>La génération de code (et dans ce cas là d'Entity) n'est pas une
				grande découverte mais il y a des petits plus qui sont vraiment très
				appréciable comme l'assistant suivant qui permet de choisir le nom de la
				classe qui sera mappé à la table :</p>
            <img src="" alt="Assitant nom table" height="100%" width="100%" />
            <p>Une pratique courante en base de données est de ne pas nommer une
				table « user », d'où le fait que nous ayant dans l'assistant ci-dessus
				une table nommé « xuser » qui sera rattachée à la classe Java nommée «
				User ». Ce plugin Dali va cependant beaucoup plus loin que la simple
				génération des Entity Beans car c'est surtout l'édition des annotations
				au sein du POJO (Plain Old Java Object) qui est facilité puisque cela
				est réalisable à la fois via l'éditeur et également via la vue « JPA
				Details » :</p>
            <img src="" alt="JPA Details" height="100%" width="100%" />
            <p>Voici un extrait du code généré et mappé de l'Entity Bean « User
				» :</p>
            <textarea name="code" class="java">package com.labosun.stockmanager.entity;
				...
				@Entity
				@Table(name="xuser", schema = "database")
				public class User implements Serializable {
				@Id
				private int id;
				private String password;
				private Date birthdate;
				private String firstname;
				private String login;
				@Column(name="address_fk")
				private int addressFk;
				private String sex;
				...
				public int getId() {
				return this.id;
				}
				public void setId(int id) {
				this.id = id;
				}
				public int getAddressFk() {
				return this.addressFk;
				}
				public void setAddressFk(int addressFk) {
				this.addressFk = addressFk;
				}
				...
				public String getLastname() {
				return this.lastname;
				}
				public void setLastname(String lastname) {
				this.lastname = lastname;
				}
				}</textarea>
            <p>Une fois cette couche d'accès aux données développée, nous
				pouvons valider cette tâche au sein d'Eclipse. Et oui, nous savions
				depuis longtemps qu'Eclipse était bien plus qu'un IDE, il se propose
				grâce au plugin MyLyn de gérer des tâches. Mylyn, version 2.0, fait
				partie des avancées majeures d'Eclipse. Ce plugin permet d'avoir une vue
				sur les tâches, les bugs &amp; le planning de vos projets. Pour la
				définition des tâches, un référentiel distant peut être défini afin que
				l'ensemble des membres d'une équipe puisse y accéder et ainsi prendre en
				charge la réalisation des tâches en attente. Vous pourrez donc notamment
				planifier vos corrections de bugs en se connectant directement au
				Bugzilla de l'entreprise ou à un autre système de bug tracking soit
				distant, soit local. Pour ce faire une nouvelle perspective « Planning »
				permet de créer vos propre tâches et de les planifier. Comme vous
				pourrez le voir dans l'écran suivant, nous pouvons spécifier le détail
				d'une tâche, son importance, son étât, sa date de début, sa durée, la
				date limite de réalisation... :</p>
            <img src="" alt="Detail taches" height="100%" width="100%" />
            <p>Voici donc un exemple de liaison entre MyLyn et Bugzilla (l'accès / l'ajout aux fichiers attachés à un bug sont facilité, la
				description de celui-ci). Il est donc très simple de programmer la
				correction d'une liste de bugs ou d'évolutions. Des notifications des
				tâches planifiés à réaliser s'affiche alors dans le coin inférieur-droit
				de l'écran afin de ne pas "oublier" la correction d'un bug. Cette
				gestion des tâches intégré à Eclipse permet de mieux gérer son temps en
				vu d'un meilleur travail en équipe :</p>
            <img src="" alt="Planification des taches" height="100%" width="100%" />
        </div>
        <div class="chapter">
            <h2>Nouveautés d'Eclipse 3.3</h2>
            <p>Parlons maintenant des nouveautés de l'éditeur en lui même, des
				raccourcis et fonctionnalités qui viennent enrichir Eclipse 3.3
				(Europa). Certains de ces ajouts sont majeurs, d'autres seront moins
				visibles mais tout autant attendus par la communauté des « Eclipse
				addicts ».</p>
            <p>La nouveauté sans doute la plus marquante est le nouveau
				raccourci "Ctrl + 3" qui permet d'accéder aux fonctionnalités d'Eclipse
				sans avoir à naviguer dans les menus. Dommage pour ceux qui connaissent
				par cœur les chemins complets permettant d'accéder aux éléments
				d'Eclipse, ils ne pourront pas rivaliser avec ce nouveau menu de
				recherche rapide. Il suffit donc de saisir le nom d'une commande, menu,
				vue, perspective,... afin de restreindre les possibilités. Il n'est donc
				ni nécessaire de connaître l'emplacement, ni le nom complet de l'élément
				recherché. Encore mieux, le menu de recherche mémorise les derniers
				éléments sélectionnés. Voici un exemple d'accès à ce nouveau menu :</p>
            <img src="" alt="Nouveau raccourcit : Ctrl + 3" height="100%" width="100%" />
            <p>Tout projet informatique bien documenté est un gage d'une certain
				rigueur qui en font très souvent le succès. Avec la correction
				orthographique (en anglais Etats-Unis ou Royaume-Uni) des commentaires
				(JavaDoc ou classique), cette qualité sera accru permettant d'éliminer
				un bon nombre de fautes qui peuvent se « glisser » dans la
				documentation. Il est possible de lier cette nouvelle fonction à
				d'autres dictionnaires. Il est donc à prévoir que des dictionnaires dans
				les différentes langues ainsi que des spécifiques à certain corps de
				métier : télécoms, finance... seront bientôt disponibles. Il est très
				simple de réaliser son propre dictionnaire puisse qu'il suffit
				d'inscrire dans une fichier texte l'ensemble des mots (un par ligne) à
				prendre en compte lors de la correction. L'utilisation du raccourci
				"Ctrl + 1" permet d'accéder à la fonctionnalité Quick Fix que nous
				connaissons d'Eclipse pour proposer des corrections de code. Dans le cas
				de la correction orthographique, les propositions proposées seront les
				mots correctement orthographiés :</p>
            <img src="" alt="Quick Fix" height="100%" width="100%" />
            <p>De nombreuses autres évolutions apparaissent avec cette version
				d'Eclipse, nous pouvons citer la fonction Undo qui a été améliorée et
				donne accès à la restauration de fichiers supprimés, le comparateur de
				fichiers a subi des évolutions, le drag &amp; drop de texte entre différents
				éditeurs (le fichier source et destination n'ont pas à avoir la même
				extension, cela permet donc de rendre les copier/coller encore plus
				rapides..), la sélection entière d'une ligne de code dans l'éditeur par
				l'intermédiaire d'un triple clic, le support de Windows Vista (SWT se
				basant désormais sur WPF), le nettoyeur de code source a subit des
				amélioration : dorénavant il est possible d'appeler cette fonction lors
				de chaque enregistrement de fichier, parmi les actions pouvant être
				faites par ce nettoyeur, nous pouvons citer la réorganisation des
				imports, la correction de l'indentation du code, le rajout des
				annotations marquantes, la suppression des opérations de cast
				inutile,... Le copier / coller de code depuis une source externe (par
				exemple le contenu d'une classe pris sur le net) génère maintenant les
				ressources associées (package et classe).</p>
        </div>
        <div class="chapter">
            <h2>Exemple de projet (suite) : JSF</h2>
            <p>Reprenons notre projet, après avoir développer la partie JPA,
				nous allons mettre en place une seconde application se basant sur les
				Java Server Faces. Créons donc un simple projet de type « Dynamic Web
				Project » auxquels nous allons ajouter les pages JSP du site. Nous
				commençons par créer la page de login avec un éditeur WYSIWYG qui se
				compose de plusieurs zones (la palette de composants graphique, le rendu
				et le code :</p>
            <img src="" alt="WYSIWYG" height="100%" width="100%" />
            <p>Plus qu'un simple éditeur WYSIWYG, WTP intègre surtout un éditeur
				du fichier de configuration « faces-config.xml » avec de nombreux
				onglets dont "Navigation Rule" permettant de rapidement visualiser le
				comportement de l’application Web.</p>
            <img src="" alt="faces-config.xml" height="100%" width="100%" />
            <p>Cet éditeur du fichier « faces-config.xml » permet une gestion
				vraiment facilitée de l'ensemble de la configuration de l'application,
				que ce soit de l'utilisation de ressources bundles, de validators, de
				managed beans... WTP conforte donc sa place de plugin JavaEE par
				excellence, que voit utilisiez la technologie JSF ou non.</p>
        </div>
        <div class="chapter">
            <h2>Les plugins d'Eclipse Europa</h2>
            <p>Dans l'ordre alphabétique nous retrouverons les plugins suivant
				intégrés à Europa :</p>
            <ul>
                <li>AspectJ Development Tools (AJDT) 1.5</li>
                <li>Business Intelligence and Reporting Tools (BIRT) 2.2.0</li>
                <li>Buckminster 0.1.0</li>
                <li>C/C++ Development Tools (CDT) 4.0</li>
                <li>Data Tools Platform (DTP) 1.5</li>
                <li>Device Software Development Platform - Device Debugging
					(DSDP.DD) 0.9</li>
                <li>Device Software Development Platform - Target Management
					(DSDP.TM) 2.0</li>
                <li>Dynamic Languages Toolkit (DLTK) 1.0</li>
                <li>Dash (Eclipse Monkey) 1.0</li>
                <li>Eclipse Communication Framework (ECF) 1.0.0</li>
                <li>Eclipse Platform, JDT, PDE and Equinox 3.3</li>
                <li>Eclipse Modeling Framework (EMF) 2.3</li>
                <li>Eclipse Modeling Framework Technology (EMFT) - Query,
					Transaction, Validation (MQ, MT, VF) 1.1</li>
                <li>Graphical Editing Framework (GEF) 3.3</li>
                <li>Graphical Modeling Framework (GMF) 2.0</li>
                <li>Model Development Tools (MDT) 1.0</li>
                <li>Model to Text (M2T) – JET 0.8</li>
                <li>MyLyn 2.0</li>
                <li>SOA Tools Platform (STP) 0.6</li>
                <li>Test and Performance Tools Platform (TPTP) 4.4</li>
                <li>Web Tools Platform (WTP) 2.0</li>
            </ul>
            <p>
                Vous pouvez consulter le détail de chacun de ces plugins
                <a href="http://www.eclipse.org/europa/projects.php" target="_blank">sur le site d'Eclipse</a>
                . Pour télécharger cette nouvelle version vous pouvez là aussi
                <a href="http://www.eclipse.org/downloads/" target="_blank">visiter le site officiel d'Eclipse</a>
                , et pour obtenir plus d'informations sur cette version, visualiser les
				différents Webinars, écouter les Podcasts ou tout simplement suivre
				les nouveautés d'Eclipse Europa, rendez-vous sur le site d'
                <a href="http://www.eclipse.org/europa/" target="_blank">Eclipse Europa</a>
                .
            </p>
            <p>
                A vous maintenant d'essayer et vous faire votre avis sur cet
				nouvelle version d'Eclipse. On se demande bien les manques qui
				pourraient subsister à Eclipse... Et pourtant après Europa, une future
				version est déjà en préparation, la 3.4 qui devrait s'appeler
				Ganymède. Plusieurs versions d'Eclipse 3.4 sont
				disponible depuis le 9 août dernier, que vous pouvez récupérer
                <a href="http://download.eclipse.org/eclipse/downloads/" target="_blank">sur le site d'Eclipse</a>
                dans la partie "3.4 Stream Stable Builds".
            </p>
        </div>
    </body>
</html>

